import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class demo02 {
//    public static int min=Integer.MAX_VALUE;
//    public static void main(String[] args) {
//        Scanner sc=new Scanner(System.in);
//        int n=sc.nextInt();
//        int m=sc.nextInt();
//        dfs(n,m,0);
//        if(min==Integer.MAX_VALUE){
//            System.out.println(-1);
//        }else {
//            System.out.println(min);
//        }
//    }
//    public static void dfs(int n,int m,int count){
//        if(n==m){
//            min=Math.min(min,count);
//            return;
//        }else if (n>m){
//            return;
//        }
//        int[] arr=check(n);
//        for (int i = 0; i < arr.length; i++) {
//            n+=arr[i];
//            count+=1;
//            dfs(n,m,count);
//            count-=1;
//            n-=arr[i];
//        }
//    }
//    public static int[] check(int n){
//        int[] arr=new int[n];
//        int len=0;
//        for (int i = 2; i < n; i++) {
//            if(n%i==0){
//                arr[len++]=i;
//            }
//        }
//        arr= Arrays.copyOfRange(arr,0,len);
//        return arr;
//    }

    //跳石板
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        int[] arr=new int[m+1];
        for (int i = 0; i < m+1; i++) {
            arr[i]=Integer.MAX_VALUE;
        }
        arr[n]=0;
        for (int i = n; i < m; i++) {
            if(arr[i]==Integer.MAX_VALUE){
                continue;
            }
            ArrayList<Integer> num=arr(i);
            for (Integer x:num) {
                if(x+i<=m&&arr[i+x]!=Integer.MAX_VALUE){
                    arr[i+x]=Math.min(arr[i+x],arr[i]+1);
                }else if(i+x<=m){
                    arr[i+x]=arr[i]+1;
                }
            }
        }
        if(arr[m]==Integer.MAX_VALUE){
            System.out.println(-1);
        }else {
            System.out.println(arr[m]);
        }
    }
    private static ArrayList<Integer> arr(int n){
        ArrayList<Integer> arr=new ArrayList<>();
        for (int i = 2; i*i <= n; i++) {
            if(n%i==0){
                arr.add(i);
                if(n/i!=i){
                    arr.add(n/i);
                }
            }
        }
        return arr;
    }
}
